package com.ruoyi.blog.domain.bo;

import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 博客文章业务对象 blog_article
 *
 * @author zhutianyu
 * @date 2021-08-19
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("博客文章业务对象")
public class BlogArticleBo extends BaseEntity {

    /**
     * ID
     */
    @ApiModelProperty("ID")
    private String id;

    /**
     * 标题
     */
    @ApiModelProperty("标题")
    @NotBlank(message = "标题不能为空", groups = {AddGroup.class, EditGroup.class})
    private String title;

    /**
     * 文章概括
     */
    @ApiModelProperty("文章概括")
    private String summary;

    /**
     * 优先级（越小优先级越高）
     */
    @ApiModelProperty("优先级（越小优先级越高）")
    @NotNull(message = "优先级（越小优先级越高）不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long level;

    /**
     * 点赞数
     */
    @ApiModelProperty("点赞数")
    private Long pollCount;

    /**
     * 阅读数
     */
    @ApiModelProperty("阅读数")
    private Long readCount;

    /**
     * 评论数
     */
    @ApiModelProperty("评论数")
    private Long commentCount;

    /**
     * 所属类别
     */
    @ApiModelProperty("所属类别")
    private String classify;

    /**
     * 所属类别,查询多个
     */
    @ApiModelProperty("所属类别list")
    @NotNull(message = "所属类别不能为空", groups = {AddGroup.class, EditGroup.class})
    private List<String> classifyList;

    /**
     * 1 表示删除，0 表示未删除
     */
    @ApiModelProperty("1 表示删除，0 表示未删除")
    private Integer hasDeleted;


    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;

    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;

    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;

    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;

}
